package com.cqut.forum.dao;

import java.util.List;

/**
 * dao层的基础方法
 * @author yangxun
 */
public interface BaseDao {
	
	/**
	 * 公共保存对象方法
	 * @param <T> 对象类型
	 * @param t 持久化的对象
	 */
	public <T> T save(T t);
	public <T> T update(T t);
	/**
	 * 公共删除对象方法(真正的删除)
	 * @param id 指定数据的id
	 * @return 返回操作的结果，操作成功返回true，操作失败返回false
	 */
	public <T> T delete(int id,Class<T> clazz);
	
	/**
	 * 公共查询数据的总共条数
	 * @return 返回数据的总条数
	 */
	public <T> int size(Class<T> clazz);
	
	/**
	 * 公共查询指定id的数据对象
	 * @param <T> 数据类型
	 * @param id 指定数据的id
	 * @return 返回查询到的数据结果,否则返回null
	 */
	public <T> T get(int id,Class<T> clazz);
	
	/**
	 * 供获取指定条数的数据对象
	 * @param <T> 数据类型
	 * @param index 数据的起始下标
	 * @param size 总共的数据大小
	 * @return 返回查询到的数据集合，否则返回null
	 */
	public <T> List<T> get(int index,int size,Class<T> clazz);
}
